#pragma once
#include <boost/signals2.hpp>
#include <SFML/Graphics/View.hpp>
#include <nice2d/component.h>
#include <nice2d/node.h>
#include <nice2d/scene.h>

class SceneCamera : public Component
{
    DECLARE_OBJECT(SceneCamera)
public:
    SceneCamera();
    ~SceneCamera();
public:
    void setScene(ScenePointer scene);
    std::weak_ptr<Scene> getScene();

    void setViewArea(const sf::FloatRect &area);
    void setViewpoint(const sf::Vector2f &point);
public:
    void update(float deltaTime) override;
private:
    std::unique_ptr<class SceneCameraData> data;
};
